package com.xci.platform.web.configuration;// package com.xci.platform.system.configuration;
//
// import com.google.common.collect.Lists;
// import org.springframework.context.annotation.Bean;
// import org.springframework.context.annotation.Configuration;
// import org.springframework.web.context.request.async.DeferredResult;
// import springfox.documentation.builders.ApiInfoBuilder;
// import springfox.documentation.builders.ParameterBuilder;
// import springfox.documentation.builders.PathSelectors;
// import springfox.documentation.builders.RequestHandlerSelectors;
// import springfox.documentation.schema.ModelRef;
// import springfox.documentation.service.*;
// import springfox.documentation.spi.DocumentationType;
// import springfox.documentation.spi.service.contexts.SecurityContext;
// import springfox.documentation.spring.web.plugins.Docket;
//
// import java.util.ArrayList;
// import java.util.List;
//
// /**
//  * Api文档配置
//  */
// @Configuration
// public class Swagger2Configuration {
//     @Bean
//     public Docket createRestApi() {
//         ParameterBuilder ticketPar = new ParameterBuilder();
//         List<Parameter> pars = new ArrayList<Parameter>();
//         ticketPar.name("X-Requested-With").description("应用类型")
//                 .modelRef(new ModelRef("string")).parameterType("header")
//                 .required(false).defaultValue("AppHttpRequest").build();
//         pars.add(ticketPar.build());
//
//         return new Docket(DocumentationType.SWAGGER_2)
//                 .apiInfo(apiInfo())
//                 .genericModelSubstitutes(DeferredResult.class)
//                 .useDefaultResponseMessages(false)
//                 .forCodeGeneration(false)
//                 .select()
//                 .apis(RequestHandlerSelectors.basePackage("com.xci.platform.auth.api"))
//                 .paths(PathSelectors.any())
//                 .build()
//                 .securitySchemes(securitySchemes())
//                 .securityContexts(securityContexts())
//                 .globalOperationParameters(pars);
//     }
//
//     private List<ApiKey> securitySchemes() {
//         return Lists.newArrayList(
//                 new ApiKey("Authorization", "Authorization", "header")
//         );
//     }
//
//     private List<SecurityContext> securityContexts() {
//         return Lists.newArrayList(
//                 SecurityContext.builder()
//                         .securityReferences(defaultAuth())
//                         // .forPaths(PathSelectors.regex("^(?!auth).*$"))
//                         .build()
//         );
//     }
//
//     private List<SecurityReference> defaultAuth() {
//         AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
//         AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
//         authorizationScopes[0] = authorizationScope;
//         return Lists.newArrayList(
//                 new SecurityReference("Authorization", authorizationScopes));
//     }
//
//     private ApiInfo apiInfo() {
//         return new ApiInfoBuilder()
//                 .title("行业管理系统Api接口")
//                 .version("1.0")
//                 // .description("描述")
//                 // .termsOfServiceUrl("http://www.xci96716.com")
//                 // .contact(new Contact("吕艳阳", "", "lvyanyang@xci96716.com"))
//                 .build();
//     }
// }
